When you are clicking on the picture, you are actually hitting the "image" object created by imshow, and not the axes "axes1" the picture was created in. Try the following two things to see this:
1) Execute the following code:
figchild = get(gcf,'Children')
axchild = get(figchild,'Children')
You will see that figchild is an axes, and the child of that axes is an image.
2) In the figure that just opened, go to "View > Property Editor", and click on the picture to give it focus. In the Property Editor pane, you will see that the object in question is of type "image". Another way to see this is by clicking on "More Properties..." and look at the very top of the window that opens up.
So the bottom line is that you are likely clicking on the "image", not "axes1". In fact, a way to see this in your app is to insert the following line where you create your imshow picture:
Now, if you click on the picture, it should print "image clicked!" in the Command Window.
Instead of using the axes1 callback, you can either use callbacks associated with the "image" graphics object instead, or you can perhaps use callbacks associated with the "figure" object instead (for example, by using properties such as "WindowButtonDownFcn", "WindowButtonMotionFcn", etc., as well as "CurrentPoint" to determine if you are clicking inside the axes limits or not).
Hope this helps!