Nem vagyok MySQL pro, de opcionális paraméterek nincsenek, csekkolhatod, hogy pl null került hozzáadásra, vagy üres string, valami, ami alapján tudod, hogy nem került szűrés megadásra.
A problémásabbnak tűnik az esetleges változó mennyiségű szűrő, itt vagy minden lehetséges szűrést beraksz a paraméterek közé és amelyik nem null az alapján szűrsz, vagy egy paramétert használsz, amiben megírod a kondíciókat a szűrésre, mintha a query-t írnád.