If you have at least read access to the record, then the file upload component will be enabled. Looking at the fact that while hard coding the ID in test data, you are able to upload a file, it seems that when you are actually running the flow, your recordId is not being populated.
Documentation:
Related Record ID - Required. ID of the record to
associate the files with. If no value is passed, the component is
disabled.
It depends on where you have added the flow. If you are putting this flow on a record page and have enabled the recordId
as an input variable, a checkbox "Pass record Id in to this variable" should appear below in the design configuration panel.
If you have done that as well, then it is likely an issue with one of the steps in the flow.