Talvez isso esteja fazendo o truque:
SELECT *
FROM table
WHERE col1 = param1
AND (param2 is null or col2 = param2);
Isso não está removendo a condição AND, mas deve tornar a condição sem importância no caso de param2 ser nulo. Portanto, não respondendo claramente à sua pergunta, mas circulando ...;)