After looking at mysql.connector source I have found consume_results=True may be required in some circumstances, and this finally fixed my issue!
consume_results=True
Pulling the results takes some time for unknown reasons, but it does work.