It's obviously the bullet that's moving too fast, so it has the time to collide with two blocks before being destroyed. I tried picking the block nearest to the bullet, or picking the first block that records a collision, but it looks like everything's still going too fast to work out.
The only other way I could think of with my tired brain was to perpetually detect which block is the lowest on the screen and store its Unique ID (UID), and then make sure the bullet can only destroy the lowest block. This method works in your example file, but it might need to be adapted to your real game, and it might also not work at all then.