Разве вы не можете просто использовать левое внешнее соединение?
SELECT PM.*, pou.ProductNumber
FROM dbo.Products PM LEFT OUTER JOIN ProductOrgUnit pou ON
PM.ProductNumber = pou.ProductNumber
Это вернет все записи из Продуктов и вернет данные только из ProductOrgUnit, если есть соответствующая запись (в противном случае поля pou будут нулевыми в наборе результатов).
В качестве альтернативы вы можете иметь два отдельных запроса в sproc и использовать оператор IF T-SQL, чтобы выбрать, какой из них запускать.