Come prima cosa è proprio strutturato male il metodo con cui fai i controlli.
Facciamo che devi controllare solo nome, cognome e sesso per brevità, poi gli altri puoi aggiungerli seguendo lo schema.
Codice PHP:
// puoi usare direttamente le variabili dall'array $_GET, non è necessario assegnare nuove variabili
if ($_GET['nome'] == ""//il controllo devi farlo sulla stringa vuota "" non sullo spazio " "
{
    echo 
"Non hai inserito il nome";
    echo 
'[url="guestbook.html"]Torna al questionario...[/url]';
}
elseif(
$_GET['cognome'] == "")
{
    echo 
"Non Hai inserito il cognome!";
    echo 
'[url="guestbook.html"]Torna al questionario...[/url]';
}
elseif(
$_GET['sesso'] == "")
{
    echo 
"Non hai specificato il sesso!";
    echo 
'[url="guestbook.html"]Torna al questionario...[/url]';
}
else { 
//tutti i controlli sono andati a buon fine
    //fai quello che devi fare se tutto va bene

Se non scrivi niente nella casella "sesso" andrai sempre sulla pagina contenuta in $redirect1 perché il controllo lo fai così
Codice PHP:
if ($sesso == "m")
{
    
header("Location: $redirect");
}
else 
//se $sesso è qualsiasi altra cosa, quindi anche niente!
{
    
header("Location: $redirect1");