The public_html folder is your root web accessable directory so all files which you wish to have viewable via a web browser must be stored within public_html.
This doesn't mean that you have to store all of your files in the root of public_html, feel free to create as many subdirectories within that folder as you need/want in order to best organize your files.
Consider the public_html folder as being the top level of your domain's directory tree. While there is one level you can access above this (the [username] folder you start out in when you login via FTP or use the File Manager) files stored on that level cannot be retrieved via the web.
Things to Note
- If you upload a file named "picture.gif" to your public_html directory that file will then be accessable from the Internet via a web browser using the URL http://yourdomain.com/picture.gif
- If you upload a file named "index.html" (or index.htm, index.php etc) to your public_html directory while the URL of the file would actually be http://yourdomain.com/index.html due to it's status as the directory index this file would also be accessible via a web browser using the URL http://mydomain.com