create zip based on contents of a file list
On Linux you can use the -@ option:
-@ file lists. If a file list is specified as -@ [Not on MacOS], zip takes the list of input files from standard input instead of from the command line. For example,
zip -@ foo
will store the files listed one per line on stdin in foo.zip.
So in your case you should be able to do:
cat diff-files.txt | zip -@ diffedfiles.zip
Got it:
zip diffedfiles.zip $(cat diff-files.txt) -r