Das mit dem NULL ist ja Absicht, da das Ergebnis nicht relavant, also ebenso nicht TRUE ist.
Da es ja eine Bedingung für den Ausschluss des dynamischen SQL's gibt, kann dieselbe Bedingung auch für das statische SQL gelten.

NULL und Null-Anzeiger:

Eine Where-Klausel will als Ergebnis ein WAHR haben, dabei wird boolsche Algebra ausgewertet.
Generell gilt: wenn ein Teil-Ausdruck NULL ist, wird der gesamte Ausdruck NULL.
folglich:

where Feld = : Parm : NullInd

ergibt: Wenn Parm nicht NULL ist (NullInd <> -1) und Feld = Parm ist, ist die Bedingung wahr.
Wenn du also NullInd auf -1 setzt ist das Ergebnis nicht Wahr, wenn du es auf 0 setzt ist das Ergebnis wahr.
Null-Idikatoren können nicht nur bei Results angewendet werden sondern auch bei Parametern um z.B. NULL beim Insert/Update zu schreiben.

NullInd ist aber nur nötig, wenn es keine andere Ausschlussbedingung gibt:
Also

where (: P1 = 0 or : P1 = Feld1 )
and (: P2 = '' or : P2 = Feld2 )
usw. usf.