Od té doby, co byla tato otázka napsána, mysql představil operátora vesmírné lodi což nám umožňuje použít běžný dotaz ke shodě s hodnotou null
WHERE fieldName <=> :fieldName;
bude odpovídat oběma null
nebo jakákoli hodnota, která není nulová.
Jednoduše tedy napište svůj dotaz a spusťte jej jako obvykle
$stmt = $db->prepare('SELECT field FROM table WHERE fieldName <=> :fieldName;');
$stmt->execute(['fieldName' => null]);
$result = $stmt->fetchAll(); // whatever fetch method is suitable
A s dynamicky sestavenými dotazy je to stejné.