Lo que te dicen los var_dump es correcto.No te debería parecer raro que una variable esté a null, y la otra no lo esté.Una no está tomando el valor de la otra, así que no dependen entre sí.
Al usar una superglobal ($_SESSION), la estás asignando valor directamente.A la otra variable se le asigna un valor según el valor retornado de una función.Si tiene un null, es porque la función puede retornar null.
Esto te deberia dar una pista: