Что "весело"? Всё логично и однозначно.
SELECT IF(
!(SELECT pa.text FROM oc_product_attribute pa WHERE pa.product_id = 19442 AND pa.attribute_id = '35'),
(SELECT pa.text FROM oc_product_attribute pa WHERE pa.product_id = 19442 AND pa.attribute_id = '35'),
'NULL'
)
Который интерпретируется как FALSE
select cast(null as boolean);
select cast(null as text);
select cast(null as int);
select if('шерсть', 1, 2);
select if('cast переменных вещь к которой надо подходить с осторожностью!', 1, 2);
select if('true', 1, 2);
select if(null, 1, 2);
select if(!(null), 1, 2);
SELECT IF( !(SELECT bla-bla-bla), (SELECT bla-bla-bla), 'NULL');
или
SELECT IF((SELECT bla-bla-bla), (SELECT bla-bla-bla), 'NULL');
Дык у вас там отрицание стоит в запросе