NULLIF(Feld, 0) entspricht: case when feld =0 then null else feld end
COALESCE(Feld, 0) entspricht: case when feld is null then 0 else feld end

Da dein Zielfeld aber NULL nicht erlaubt (siehe Fehlermeldung) darfst du nicht NULL im Ergabnis haben.
Also wäre Dieters Lösung "select coalesce(feld, 0) from ... where ..." die Richtige.
Allerdings wird trotzdem NULL geliefert, wenn die Where-Klausel nicht fündig wird.
Also "coalesce((select feld from ... where ...), 0)" ist dann fast perfekt.
Um auszuschließen, dass mehr als 1 Zeile kommt, falls die Daten es zulassen, kann man noch ergänzen:
coalesce((select feld from ... where ... fetch first 1 rows only), 0)