Olá! O css funcionaria se o "e comercial (&)" não estivesse na frente do hover do a? Já que está dentro do "a", por que precisaria repetir o "a"? Não seria esperado que o hover já fosse sobre o "a"? Dessa forma:
.menu-principal {
...
.menu-principal a {
color: white;
text-decoration: none;
hover {
text-decoration: underline;
}
}
}