piu' che vedere la pagina in cui setti la variabile di sessione in $_SESSION, bisognerebbe vedere la pagina di arrivo. Se lo vedi solo dopo la seconda volta potrebbe trattarsi di una lettura della pagina da cache.
piuttosto nel riconoscimento dello user che fai dopo la query sarei piu' prudente nell'assegnare i privilegi a root. Farei esattamente il contrario come ordine di assegnazione altrimenti se esiste lo user e non e' utente semplice diventa automaticamente root.
Meglio fare:
se hai privilegi da root fai il root
altrimenti fai il normale.
e non
se sei normale fai il normale
altrimenti fai root
Qualunque valore diverso da diritto = 0 in questo caso diventerebbe root.