...a 301 redirect from the GUI offered by my web hosting company ... I have to keep product_category1.php file in the public_html folder in order for the redirection to happen, otherwise the only redirection that happens is to the 404 page.
It sounds like the redirect has been implemented incorrectly (or rather, in the wrong place in your
.htaccess file) by the hosting GUI. You should not need to keep the old
.php files from which you are redirecting (although this makes no difference from an SEO point of view - it's being redirected).
It is a common problem with using a 3rd party tool (hosting GUI / cPanel for example) to implement redirects when you have an existing system in place. WordPress itself places directives in your
.htaccess file (Apache per-directory config file) and the "hosting GUI" is probably doing the same when it implements the redirect. Without knowing exactly what your current directives are doing (which your "hosting GUI" probably does not) it is difficult to reliably make any "automatic" changes.
My guess is that the redirect directives have been placed after the existing WordPress directives by the "hosting GUI". Whereas they would need to be placed before the existing WP directives.
If the redirect directives are placed after the WP directives then they will only be processed if the file actually exists, because WP routes all non-existent files and processing stops there. But if the file doesn't exist then WP routes the URL and you get the 404, because the old URL is not a valid WP URL. This seems to be what is happening here.
If you add the contents of your
/.htaccess file to your question then we can verify this.
Will they [vanish] if they always get redirected, even though they still exist in the public_html folder?
Yes. Eventually the old URLs will disappear from the SERPs if they are 301 redirected. From a search engine / end user point of view, it makes no difference whether the original file still exists or not. It is redirected, so they have no way of knowing.
Is there a way to do the redirection without keeping the files?
Yes, as mentioned above. It would only seem to be because of a conflict with existing directives that you are getting this seemingly bizarre behaviour. Taken out of context, you would get a puzzled look if you said to someone that the file needed to exist before you could redirect it!
Or should this be dealt in a completely different manner in order to have maximum SEO and visibility for correct URLs in the new website?
A 301 redirect is all that's required. However, it should have been implemented in the very beginning, as soon as the URLs changed, in order to have had "maximum SEO".