xargs -n1 means to execute the command for each argument. So
tar saves one file at a time, overwriting the previous archive each time.
-n1, the command would be fragile due to the command line length limit.
… | xargs tar … makes repeated calls to
tar if all the arguments can't fit at once, and each repeated call would overwrite the previous one.
You can create an archive with one file (or more) with
tar -c, then append to it repeatedly with
tar -r. That's awkward because there's no convenient way to pass different options the first time, and you have to create an uncompressed archive then compress it at the end.
If your tar supports the
-T option, you can use it to pass file names on standard input. This works like
xargs, but without the limitations of the command line length.
printf '%s\n' 20200*/*.csv | tar -vczf odlists.tar.gz -T -
Alternatively, assuming your tar supports filtering, you can use that.
tar -vczf odlists.tar.gz --exclude='*.' 2020*