non si capisce piu' se parli del primo if del primo post oppure della if del secondo.....
primo post:
se cerchi il session_id prima di aprire la sessione la if trovera' sempre un false e quindi inizializza $_SESSION['user'] con 'anonymous' tutte le volte ....
va bene invece la seconda if, anche se userei !empty invece di isset. Potrebbe essere settato ma vuoto.