sed 's|^|PREFIX|' prefixes every line, and for a well-formed file that is the end of it. Real exports are rarely well formed.
Blank lines are still lines
^ matches at the start of an empty line too, so a file with trailing blank lines comes back with prefixes attached to nothing. If that output feeds a URL list, you have just manufactured a request to your own domain root, repeated however many empty lines the export happened to end with. Filter blanks first, not after.
Carriage returns from Windows exports
A file saved on Windows ends its lines with \r\n. Process it on Linux and the \r\n stays put, sitting invisibly at the end of every value. The prefix looks correct in the terminal and breaks the moment the data is compared against anything. sed 's/\r$//' before the prefix pass, or the whole batch silently mismatches.
The encoding trap
If the prefix itself contains & in a sed replacement, it expands to the entire matched text rather than a literal ampersand. Escape it, or use a tool where the input is treated as a literal string rather than a pattern.
Try it: Add Prefix on SeoWolf's Notepad.