Both those approaches should work. Which one suits you best will depend on how often the list changes, and how automated the process should be, as well as the size of the list. An alternative to NotIn is to create a calculated field of Memo type, paste the list of IDs into this field, called , say, and then filter it with:
A memo field can hold 32k of data, which should be enough. To prevent false matches, it's useful to put a separator between the values in the Memo field, using any character that doesn't appear in the ID field. # or / usually do the trick.