Forse questo sta facendo il trucco:
SELECT *
FROM table
WHERE col1 = param1
AND (param2 is null or col2 = param2);
Questo non rimuove la condizione AND, ma dovrebbe rendere irrilevante nel caso in cui param2 sia nullo. Quindi non rispondendo chiaramente alla tua domanda ma andando in giro...;)