Hai letto il link che ti ho indicato?
Hai capito come devi scrivere correttamente la classe registrati e come chiamarla?

Codice PHP:
$a=$_POST['tabella']; 
$b=$_POST['regione']; 
$c=$_POST['nome'];
$d=$_POST['cognome']; 
$e=$_POST['telefono']; 
$f=$_POST['email']; 
$g=$_POST['descrizione']; 
$h=$_POST['pic_1']; 
$i=$_POST['pic_2']; 
$l=$_POST['pic_3']; 
$m=$_POST['pic_4'];

$n=4//a che serve?

$registrazione = new registrati($a,$b,$c,$d,$e,$f,$g,$h,$i,$l,$m); 
Codice PHP:
class registrati
{
    public function 
__construct($tabella,$regione,$nome,$cognome,$telefono,$email,$descrizione,$immagine_1,$immagine_2,$immagine_3,$immagine_4 )
    {
        
// qui richiamo la classe Mysql per connetterni al db
        
$connessione= new mysql();
        
$connessione->connessione();
        
//Questa è la query che mi crea problemi
        
$query "INSERT INTO `$tabella
                        (`id`, `regione`, `nome`, `cognome`, `telefono`, `mail`, `descrizione`, `immagine_1`, `immagine_2`, `immagine_3`, `immagine_4`)  
                    VALUES
                        ('','"
.$regione."','".$nome."','".$cognome."','".$telefono."','".$email."','".$descrizione."','".$immagine_1."','".$immagine_2."','".$immagine_3."','".$immagine_4."')";
        
        
mysql_query($query) or die ("Query errata"); 
    }

Ad ogni modo nella query scrivi
VALUES ('',

a che serve quel "niente" messo in corrispondenza del campo id?
Se non ci devi mettere niente perché è un campo auto_increment basta che non lo specifichi nella query, anzi non lo devi proprio specificare, altrimenti ci mette il valore che gli passi (niente nel tuo caso).
togli dalla query
`id`,
e
'',