How can I set up the dockerfile so that files/folders will automatically get added to the hosts mounted directory upon running the container?
You don't. Dockerfile is used to create an image, to set up content of the image. You can set up content of your mounted directory directly in your shell:
# create folders:
mkdir /uploads123
mkdir /uploads123/folder1
mkdir /uploads123/folder2
# run container
docker run -i -t -v /uploads123:/uploads [IMAGE ID] /bin/bash
# for this trivial case, you can use directly ubuntu image,
# it works, no need for Dockerfile
Alternatively, you can set some setup script to run in container before starting the main process. This setup script can populate mounted volume with nescessary folders.
To explain the behaviour - your command RUN mkdir /uploads/folder1
did create the folder in the image, but you shadowed the folder with mounted volume, so you do not see this folder (folder is in the image, not in the host folder). You cannot create folders on volume in your Dockerfile, because volume is mounted at runtime later (container).