Again, you're trying to match a plain literal against an xsd:string. Apparently Protege allows this, though I didn't realize it was legal to do so.
Just to clarify: it's illegal under simple entailment. It's legal under an entailment regime which unifies simple strings and xsd:strings.
That is to say: it's perfectly legal so long as Protégé does not claim to be using simple entailment (and I don't think it does).
This is an area that the SPARQL spec does not address: entailment regimes live entirely outside of the SPARQL language itself, as well as the SPARQL Protocol, so there's no way to find out how your results were calculated!
