En el primer caso te da error porque esa session no existe.
En el segundo caso no da error porque evaluas la condició que exista y además sea uno. Al no existir no te va a dar error.
En el tercero presupongo que al entrar en el if evalua primero si es = a 1 que es lo que está antes y da error aunque después pongas el isset
En cuanto a comprobarlo haciendo el isset a una variable session; sí.
Yo al menos lo hago siempre... primero vara evitar errores, segundo para comprobar que todo está ok y tercero porque puede no haber sessión, haber caducado, etc.
Numeré demasiado.
Un saludo.