Y si pones otra cosa después de session_start(), como
echo 'nsnsns';, se imprime? Es muy raro, ya que no tiene que borrarse ninguna variable por el simple hecho de iniciar una sesión. Que session_start() esté generando un error que provoque la detención del script es la única explicación lógica que encuentro. Pon ese echo para verificar que el script sigue corriendo tras ejecutar esa función.