Sono le 3 e mezza, non so se questo tentativo di riscrittura del codice che ho fatto risolverà il problema, ma proviamo comunque.

Quello che cambia è il codice dall'inclusione del file per la connessione al db fino all'esecuzione della query (esclusi).

Codice PHP:

// Escape dei campi del form
$regioni   mysql_real_escape_string($_REQUEST['provincia']);
$provincia mysql_real_escape_string($_REQUEST['provincia']);

// Determiniamo i campi della tabella che dovranno essere estratti, basandoci sulle checkbox selezionate.
// Se non è selezionata alcuna checkbox, la ricerca avverrà su tutti i campi
$expr_select count($_REQUEST['servizio'])  ?  implode(', '$_REQUEST['servizio'])  :  '*';
            
// Costruiamo la clausola WHERE solo se è selezionata una provincia
if ($provincia != 'tutte')
  
$condizione_query "WHERE regioneazienda = '$regioni' AND provincia = '$provincia'";

// Concateniamo le stringhe e otteniamo la nostra query
$query "SELECT $expr_select FROM $table02 $condizione_query"
Spiego ciò che ho fatto così in caso di dubbi hai già un chiarimento

Non ho usato le parentesi graffe con il costrutto if perché è associata una sola istruzione di codice...per renderlo più leggero possibile

Per selezionare i campi della tabella tramite le checkbox, sfruttiamo il fatto che tutto finisce in un array.
$_REQUEST['servizio'] sarà comunque un array, quindi il controllo deve verificare quanti elementi contiene.
Se count() restituisce un numero maggiore di 0 (quindi TRUE) allora almeno una checkbox è selezionata; viceversa, con la funzione implode() raggruppiamo i valori dell'array in un'unica stringa, inserendo ciò che gli abbiamo passato (la virgola) tra un valore dell'array e l'altro. Se il valore è uno solo non sarà inserita alcuna virgola quindi siamo sicuri che non saranno generati errori durante l'esecuzione della query.

Infine, se è selezionata anche la provincia, viene accodata alla query una condizione WHERE.

Fammi sapere se funziona, ciao ciao!