Your call to glLoadIdentity() is probably working fine (how could it not?) – rather, it’s likely that you’re just aiming the camera off in the wrong direction or somesuch.
glPopMatrix is not necessary for simply setting up a projection matrix. In fact, I wouldn’t suggest glPushing/Poping off of the GL_PROJECTION matrix stack unless it is actually necessary to save the current projection matrix.
But, the sequence of code for re-setting the projection matrix is as follows:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
/Insert your favorite perspective function. For example, gluPerspective(parameters);/
glMatrixMode(GL_MODELVIEW);