[potrei aver male interpretato ciò che chiedi ... ma io credo che...]
potresti fare tre select diverse...
controllando la presenza delle ulteriori chiavi per esempio:

//poniamo che:
$id_marca=$_GET['idMarca'];
//e
$id_cat=$_GET['idCat'];

//allora

if($id_marca!="" and $id_cat!="" ) {
$select="select * from prodotti where nome like'%$key%' or descrizione like '%$key%' and marca = '$id_marca' and id_cat = '$id_cat'";
} elseif ($id_marca!="") {
$select="select * from prodotti where nome like'%$key%' or descrizione like '%$key%' and marca = '$id_marca' ";
} elseif ($id_cat!="") {
$select="select * from prodotti where nome like'%$key%' or descrizione like '%$key%' and id_cat' = '$id_cat' ";
} else {
$select="select * from prodotti where nome like'%$key%' or descrizione like '%$key%'";
}


...