Hmm... well, what happens is the 'Bounce off solids' option in the ball movement, when ticked, automatically moves the object off the solid and changes the direction. Because it's moved off, by the time the 'On collision' event comes to be tested, it's still not overlapping.
Deadeye's solution could work, or you could try turning off 'Bounce off solids' in the ball properties. You can then add an event - ball collides with sprite - and add the 'Bounce off object' action in the ball to bounce it off. Then you can add your own actions to the event as well, like playing sounds and incrementing counters. I just tried it, though, and the collisions are a little less accurate this way. You might need to make the bullets slower.
I think I can fix this for a future build though - so if the ball registers a collision when deciding if it should bounce, then it should also register a collision in the events. This might get physics objects to register collisions as well...