My problem is similar but with a different twist. I have been taking pictures on my iPhone forever adn importing them into iPhoto, and I would delete some but not all of the pictures from my iPhone. I recently decided to free up some space on my iPhone, so I deleted all of he pictures in my Camera Roll. All the picturs there were already in iPhoto, and I just created an album of the picturs I wanted and have set that up in iTunes to sync to the iPhone. So this makes sense and I am finally starting to use iPhone/iPhoto/iTunes the way it is intended.
But now when I connect my iPhone, iPhoto starts its usual routine of checking to see what photos to import. If I have no new photos, iPhoto hangs up on "loading" forever. But if there is even one picture to import, no problem. So with iPhoto hung up, I can unplug my iPhone, take a random snapshot, plug it back in and am immediately asked if I want to import the one photo.
I can import it or not. If I do not, every time I unplug and replug the iPhone, I get immediately prompted about importing one photo. If I import it, I can unplug I and replug the iPhone, close and restart iPhoto, and each time it briefly does the loading routine and in a matter of seconds shows me the last photo imported and tells me that all photos have been imported.
But when I delete that photo, I go back to the hangup on "loading" problem. It turns out that as long as there is one photo in my Camera Roll, everything works perfectly. When the Camera Roll on my iPhone is empty, iPhoto can't handle it.
So for now I am just leaving a picture in my camera roll. Not sure if this behavior suggest a corrupted datsabase that needs to be rebuilt, but I will give that a try at some point.