glLightfv(GL_LIGHT1, GL_POSITION, lightPosition - cameraPosition);
Don’t do that. Well, not the subtraction.
What you want is to position the light in world-space. The call to gluLookAt already adjusted the MODELVIEW matrix into world-space. That is, any glVertex-equivalent calls will operate in world space at this point.