Praticamente hai postato tutta una serie di codice che non serve!
Scherzo e passo subito a risponderti.

Suppongo tu stia creando una specie di motore di ricerca, in cui puoi restringere i risultati in base alla categorie merceologica o meno.
Devi creare una stringa di query dinamica.
Mi spiego meglio.

Alla pagina che riceve i dati dalla form, devi scrivere una cosa del genere:
Codice PHP:
$sql "
SELECT *
FROM prodotti
WHERE descrizione LIKE %testo%
"
;

if(isset(
$_POST['cat']) && $_POST['cat'] != "") {
   
$sql .= " AND categoria = ".$_POST['cat'];
// occhio a lasciare uno spazio prima della parola AND

Se la variabile è stata valorizzata in qualche modo (dalla select) allora alla stringa SQL viene concatenata quella che vedi nell'if.
Ricordati che nella select, per la prima OPTION (o comunque per quella che permette di cercare in tutte le categorie) devi inserire o una stringa vuota (come nell'IF che ho scritto io) oppure un valore a te noto, con il quale vai a fare il controllo nella IF di cui sopra.

Ultima annotazione.
Una query SQL di questo genere (senza un minimo di controlli sugli input) è oro colato per gli hacker!