Просто единственный смысл который я вижу это возвращение NULL вместо пустого запроса, но чем его пустой ответ в этом случай не устраивал непонятно.
Есть ощущение что есть какой-то более прикладной смысл.
так я NULL ни с чем её не сравниваю и не привожу)))
Но я понимаю что разработчик не дурак и не спроста обернул простой запрос в конструкцию IF (в вашем варианте IFNULL)
echo (null)?'yes':'no';
no
echo !(null)?'yes':'no';
yes
echo ('wtf')?'yes':'no';
yes
echo !('wtf')?'yes':'no';
no
Т.е. в поле первое значение единица и возвращает NULL
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'
)
select if(!('100% полиэстер'), '100% полиэстер', 'NULL');
Что "весело"? Всё логично и однозначно.
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');