Ищем описание NULL в модуле variants:
function Null: Variant; // Null standard constant
При компиляции всё проходит, т.к. можно целочисленной переменной присваивать вариантное значение, а вот при выполнении идёт попытка преобразовать ничто (Null) к целочисленному типу, отсюда и ошибка.
Спасибо!
Вопрос, собственно, возник в связи с реализацией в Lazarus'е. Так как уже привык видеть в описании, что такое-то сообщение возвращает результат такой-то, а иначе возвращает NULL.