Si $published (== '') es igual a cadena vacia
filtra por 1 o 0
quando es no vacia Si solo si
no es '*' (cadena igual a * )
filtra por el valor de $published
Es decir cuando es cadena vacia busca 1 o 0 y cuando
no es * busca por el valor.
Si es * no hace nada.
'*' tiene significado especial cuando se usa dentro de un patron (PCRE) de una expresion regular pero para ello es necesario usar la función
preg_match Patrones PCRE
Un * solo no tendria mucho sentido.... podria significar que
sea o no cadena vacia (0, cero o más caracteres) con lo que el else if estaria en contradicción con el if....