Ik heb zelf de oplossing voor mijn probleem gevonden, maar ik begrijp nog steeds niet helemaal waarom het niet werkte:
Ik verleende privileges aan die gebruiker op de hosts % en localhost:
# Before
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
+-----------------+------------+
Met deze instellingen kreeg ik de resultaten die ik hierboven liet zien. Toen ik die gebruiker op de host privileges verleende, werkte het plotseling wel.
# After
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
| <myIpAddress> | username |
+-----------------+------------+
Blijkbaar werkt % wel voor externe verbindingen, maar niet voor lokale verbindingen.