Con parámetros no creo que pueda hacerse, o al menos tal y como yo lo he entendido.
al usar parámetros estas forzando el tipo de datos, si usas "AsString" delphi esperará una cadena de caracteres y lo encerrará entre comillas simples. Si usas AsInteger, esperará un entero y no podrás asignar el texto " is not null ".
Podrías hacer algo similar a esto:
Código Delphi
[-]
const sqlcliente = 'select * from cliente where empresa=:empresa and cadena %s';
begin
if checkboxNoNulos.Checked then
query1.sql.text := Format(sqlCliente, ['is not null'])
else
begin
query1.sql.text := Format(sqlCliente, ['= :cadena']);
query1.parambyname('cadena').AsInteger := 3;
end;
query1.parambyname('empresa').AsInteger := 5;
query1.Open;
Saludos