You could use a conditional concatenated query:
SELECT name display, name return_value
FROM ns1
WHERE "type" = :P5_REC_TYPE_ID
AND :P5_NS_ID IS NULL
UNION ALL
SELECT name display, name return_value
FROM ns2
WHERE "type" = :P5_REC_TYPE_ID
AND :P5_NS_ID IS NOT NULL
Replace IS NULL
/IS NOT NULL
with the appropriate logical test.