Frames are an awful solution. Please don't blight the interweb with that stuff.
There's a couple of other ways, depending on how much control you have over your server. The elegant thing, I think, would be to point a virtual domain at /public_html/mysite (in httpd.conf, I'm assuming this is apache from the public_html). This works best if you want to serve up the non-mysite contents up to a different domain too.
You could also put a Rewrite rule in /public_html/.htaccess (not sure if that's the precise file name) that changes all requests down by the directory. You might have to play with it for a while to get it to work just right, depending on what you need exactly.
If you only care about that first hit and don't mind the rest of the urls containing /mysite/ then you can do similar to madmaludawg's suggestion by putting a redirect in your index.html so all requests to / get bounced (client-side) to /mysite/.