Maybe a work around would be something like this:
SELECT *,
CASE WHEN val IS NULL THEN 0 ELSE 1 END,
NTILE(4) OVER (PARTITION BY CASE WHEN val IS NULL THEN 0 ELSE 1 END ORDER BY val) As Q
FROM #t;
Only use the rank when CASE WHEN val IS NULL THEN 0 ELSE 1 END = 1