Поскольку параметр для метода VB6 - это вариант, который вы должны проверять на наличие Nothing, Missing и Empty, поскольку они являются возможными «не значениями или объектами», которые могут передаваться, когда нет действительного значения или объекта.
Отвечая на ваш вопрос, я думаю, это потому, что Variant в VB6 по умолчанию равен Empty, если ваш параметр имеет тип Object Ничего не будет передано, в вашем случае.
Возможно, вы захотите попробовать передать Nothing из VB.Net и посмотреть, что произойдет, если Nothing сохраняется в DLL VB6, вы знаете, что это можно передать, и найдете ответ, посмотрев код IL.