Ваш существующий запрос имеет подразумеваемое декартово соединение между двумя подзапросами - это означает, что когда один запрос возвращает n строк, а другой возвращает m строк, вы увидите всего m * n возвращенных строк - т.е. каждая комбинация строк из первого набора со строками из второго набора.
Таким образом, если у вас есть 0 строк, возвращаемых в любом наборе, вы увидите всего 0 строк, возвращаемых.
Если предположить, что ни один запрос не должен возвращать более одной строки, то, вероятно, самая простая версия измененного запроса может выглядеть следующим образом:
SELECT coalesce(
(SELECT PARM_VALUE FROM BO_PARM WHERE (ENTE_CD = '7316') AND PARM_CD = 'PAGINAZIONE_PROMOZIONI'),
(SELECT PARM_VALUE FROM BO_PARM WHERE (ENTE_CD = '0000' OR ENTE_CD = 'XXXX') AND PARM_CD = 'PAGINAZIONE_PROMOZIONI')
)