You can use the following EL expression in JSF 2.0:
#{facesContext.externalContext.getSession(false) == null}
Do note that referencing the implicit EL object session
will automatically (re)create it again. This one can thus never be used for testing.
E.g.
Suppose you would have invalidated the session in a backing bean, and a Facelet with the following content was rendered:
#{facesContext.externalContext.getSession(false) == null}
#{session.new}
#{facesContext.externalContext.getSession(false) == null}
This would render:
true true false
The session is first really gone, but by referencing the implicit EL object it's created again (and will be in the new state). The second test then finds the session to be there again.