Как правильно искать поля типа NULL через LIKE?
Вы начните с вопроса - а что вы получить-то хотите? Исходя из этого уже конструируйте запрос. Потому что все 3 запроса в вопросе полностью корректны и именно что и должны вести себя различным образом.
С вариантами типа функция(поле) like 'pattern' - аккуратнее. Для большинства субд это обозначает сознательный отказ от использования индексов по этому полю. Для like '%pattern%' впрочем это и так справедливо для любых btree, не префиксовый поиск вести по btree штука закономерно не эффективная.
PS: и ой большое опасение у меня по этому фрагменту что у вас sql инъекции открыты во всю свою ширину.
В T-SQL есть IsNull()SELECT * FROM nametable WHERE IsNull(col1,'') like '%"+ui->text_pole_1->text()+"%' ;
В MySQL есть IfNull()SELECT * FROM nametable WHERE IfNull(col1,'') like '%"+ui->text_pole_1->text()+"%' ;
Так же есть COALESCE() и NVL()SELECT * FROM nametable WHERE coalesce(col1,'') like '%"+ui->text_pole_1->text()+"%' ;SELECT * FROM nametable WHERE nvl(col1,'') like '%"+ui->text_pole_1->text()+"%' ;
В данных примерах мы NULL заменили на пустую строку