Spróbuj użyć ISNULL
Jestem prawie pewien, że powodem jest to, że porównując IS NULL do NULL, wynik jest NULL, a więc False, stąd dlaczego jest oceniany w stosunku do INNEGO 1
SELECT c.customerID, o.OrderID, CASE When ISNULL(o.OrderID, 0) = 0 Then 0 Else
1 End as YesNO
FROM Customers c
LEFT JOIN Orders o
ON c.customerID = o.customerID