「レコードがないときに「レコードが見つかりません」を受け取ることを期待していましたが、代わりにnullの結果を受け取りました。」
次に
SELECT SUM(dummy) FROM DUAL WHERE 1=2 HAVING COUNT(*) > 0
つまり、考慮された行があった場合にのみ要約を返すように指定します。
SELECT SUM(dummy) FROM DUAL WHERE 1=2 HAVING SUM(dummy) IS NOT NULL
は似ていますが、ダミーがnullである行のみが存在する場合、COUNT(*)は要約行を返しますが、後者はそうではありません。