Il test è effettuato fuori dal ciclo.
Molto probabilmente quello che vorrebbe fare è questo (anche se mancano le chiusure dei tag)

Codice PHP:
$select = @mysql_query($query) or die("Query fallita !");
    echo
"<table><td font align=\"center\">[b]Intervento descrizione[/b]</td>";
    while(
$result = @mysql_fetch_array($select)) 
    {
       echo
"<tr><td align=\"center\">" $result["tipo"];
       if(
$result['tipo']=='b')
       echo
"
utente è responsabile"
;
       else
       echo
"
utente nn è responsabile"
;
    } 
Fuori dal ciclo $result è uguale a null.