No es un problema de Javascript sino de la lógica.
Si selecciona "" no seleccionó "soltero" por lo que se cumple valor!="soltero", por el otro lado si selecciona "soltero" no seleccionó "" y se cumple valor!="". Si seleccióna cualquier otra cosa no se seleccionó "" ni "soltero" por lo que tanto valor!="" como valor!="soltero" se cumplen. Por eso siempre se cumple el if
Yo creo que más bien quieres que el if pase cuando valor NO es "" NI tampoco "soltero", eso sería:
Código Javascript
:
Ver originalif (valor != "" && valor!="soltero")