ему надо если параметр имеет значение NULL, то оставить значение поля
SET test = COALESCE(:test, test)
. Ну или как у тебя, IFNULL (не люблю эту функцию - и не стандарт, и всё равно маппится на COALESCE).сбегать в базу, чтобы ничего не сделать - это говнокод.
Верхний уровень агрегации - массив. А у тебя в пути нет даже намёка на массив... поэтому и NULL.