WHERE 1=1 serve per inizializzare la clausola WHERE.
Immagina che l'utente non selezioni alcuna opzione, devi mostrargli tutto quello che c'è.
Se non selezionasse niente, nessuno degli if inserirebbe una condizione nel WHERE, quindi ti ritroveresti con la query tronca
SELECT nome,indirizzo,descrizione FROM tab_case WHERE

che ti darebbe errore, invece così hai come minimo
SELECT nome,indirizzo,descrizione FROM tab_case WHERE 1=1
e 1=1 è sempre vera, quindi prende tutto.

Magari nel tuo caso almeno una opzione è obbligato a selezionarla, ma creare la query così male non fa, in futuro potresti decidere di rendere tutto opzionale e non corri il rischio di dimenticarti di sistemare la query.

Per quanto riguarda l'altra domanda, ciò che metti negli if per aggiungere pezzi alla query devi scriverlo in base alle reali esigenze, per esempio per il problema che hai dovrebbero servirti degli OR e non degli AND.