returning a null value instead of no value
Your last 2 SELECTs are without a FROM clause. These will always return a single row of scalar values.
The fact that the subquery did not return any rows, caused the expression to be NULL - unknown.
Think about the following statement - how would you expect the engine to handle this:

 SELECT 1 AS FirstCol, (&lt;some SELECT that returns no rows&gt;) AS SecondCol


Note: This is a non standard T-SQL extension. In Oracle for example, you need to add the FROM DUAL or you will get ORA-00923: FROM keyword not found where expected. However, this same statement with FROM DUAL added run in Oracle will also result in a single row of scalar values.