Тут проблема не в location а в том, что вы не до конца поняли как работает директива root:
При запросе mysite.com/files nginx пытается выдать папку /media/web/files, а ее у вас нет, отсюда 404.
Из документации: «Путь к файлу формируется путём простого добавления URI к значению директивы root. Если же URI необходимо поменять, следует воспользоваться директивой alias.»
Тоесть вам просто надо заменить root на alias