Con ADO, dado que no existen los métodos AsXYZ que fuerzan el tipo de datos del parámetro, casi siempre hay que especificarlo explícitamente. Así parece ser en este caso, aun cuando el valor pasado sea NULL:
Código Delphi
[-]
ADOquery1.Parameters.ParambyName('id_marca').DataType := ftInteger;
ADOquery1.Parameters.ParambyName('id_marca').Value:= Null;
No obstante, no especificas el uso del parámetro. Si es para asignar el valor de un campo, lo anterior te sirve, siempre y cuando el campo en la tabla realmente acepte valores nulos. Pero si se trata de un parámetro de comparación, por ejemplo:
Código:
select * from tabla where id_marca = :id_marca
entonces no creo que funcione ya que las comparaciones con NULL se hacen con el operador IS en lugar de =.
Bye