Según tu primer código (lo que funciona) como "resultado final" necesitas "
M978xxxx" donde xxxx es un entero. Sin embargo en tu segúndo código el valor de $a incluye el mismo prefijo dos veces... ¿?
1.
$a = $miconexion -> row ['total'];
2. ¿imprimiste ese valor para ver si llega bien?, ¿seguro la conexión y la consulta se realizaron con éxito?.. cómo es todo este proceso previo?.
Saluton