Android FTS uses Standard Query Syntax, Not Enhanced.
As such, it does not recognize "NOT" or "AND" as operators. It's actually trying to match them to the text of your db columns. Which is why on the Android, your only match came from an entry with "not" in the actual text.
You have to use "-" for NOT and blank space for AND. Thus, your syntax should look like:
WHERE glossfts.value MATCH 'dog* -dog'