I never had this issue, and I have been running websites with MySQL on dozens of different shared hosts. Maybe there's too much load on the server and MySQL times out... although that's unlikely.
Do you happen to have some huge DB tables your querying? Something outside of SilverStripe?
If not, I suggest you change to a different hosting provider.
Just to update on this thread, it turned out the particular web hosting server I was on had disk I/O issues, causing the MySql server has gone away error. I've now moved to more reliable hosting (from the same provider).