Why I'm getting MySQL error that server has gone away?
A couple of things to try:

First, it's potentially one of your contrib modules causing the problem, so option 1 would be to use Drush to disable all non core modules:

drush pml --no-core --type=module --status=enabled --pipe | xargs drush -y dis

After running this, there is a good chance that you can access your modules page again and be able to start enabling modules one by one to pinpoint the culprit.

Option 2 would be to check mysql's MAX_ALLOWED_PACKET.  You can check this by running SHOW VARIABLES LIKE 'max_allowed_packet' in your mysql console.  If it is set at 1MB, you can try raising it to 16M by running SET GLOBAL max_allowed_packet=16777216;. Try loading your page again to see if that was the issue.