I have a user \'myuser\' and two databases. \'db1\' and \'db2\'.
\'myuser\' already has rights to use db1
USAGE means "no privileges and that is what you have given your user when connecting from localhost.
I think localhost takes precedence over % so when the user is connecting from localhost that is the grant that will be used.
Grant access to both schemas to % (or localhost if that is what you prefer) and it should be clear and work better.