I don't know if such a law exists or not, but, how could it be enforced? Railroads are private property and private businesses. Further, how can we actually prove that passenger trains are or are not given priority.
Union Pacific, for example, is in perpetual *meltdown* mode, on practically every line that it operates. CSX has its own problems (such as a quick, weekend crossover project in Virginia that wound up screwing up three days worth of Amtrak and VRE commuter service during the work week). Are they not giving passenger trains priority, or are they just generally incompetent?
When Amtrak is stuck behind a broken down freight train with a dead crew, then has to wait for three other trains to clear a single track line before it proceeds at restricted speed due to slow orders (which, on the Coast Starlight's route, amount to 2-3 hours worth of delays alone), priority isn't the problem.
That said, Amtrak negotiated with individual railroads for access, priority, on-time incentive payments, etc., after the initial Amtrak legislation expired in 1996. While I'm not a lawyer, and have not seen the contracts in question, I get the impression that Amtrak's ability to pursue any sort of damages against the host railroads is quite limited, and they probably stand to lose more than they gain if they were to try anything today (such as file a lawsuit against one of them). That is the most likely reason why they haven't done so by now.