First, since cats is a function that can only be used within the data step, change it as follows
data _null_;
call symputx('file_path',cats(&csv_location, &csv_file));
run;
Then, the semicolon after proc import datafile= is unnecessary.
Also, double quotation marks are necessary because we are concatenating the filepath string in the data step.
proc import datafile= "&file_path"
Finally, let's first create the code that works correctly without macro variables before starting macro coding.
The following options are useful for debugging macros Please refer to them.
options mprint mlogic symbolgen;