Muchas gracias por el consejo gnzsoloyo.
Finalmente, he cambiado y le he hecho como tú me has dicho. El problema que tenía, y que se me olvidó comentar, es que podía haber otro campo NULL (la edad por ejemplo). Al final he hecho algo así:
Código PHP:
$campos = "nombre, apellidos";
$valores = "'$nombre', '$apellidos'";
if(!empty($sexo)) {
$campos .= ", sexo";
$valores .= ", '$sexo";
}
if(!empty($edad)) {
$campos .= ", edad";
$valores .= ", '$edad";
}
$sql = "INSERT INTO alumnos (".$campos.") VALUES (".$valores.")";
mysqli_query($conection, $sql);
No sé que tal estará el código así, de momento me funciona correctamente.
Un saludo.