Note that filtering on List-ID or X-Mailing-List isn't 100% reliable. You probably want to filter on the SMTP reverse-path, which will usually end up in a 'Return-Path' header or the 'From ' line.
List-ID and X-Mailing-List get preserved if someone bounces (in pine parlance, aka 'redistributes') a mail to you.
Consider, for example, the case where you're on vacation so you've filtered a certain list to /dev/null, or you're just not reading it till you get back; at which point you'll read it with grep.
A colleague sees a mail he _knows_ you'll want to read from that list, and bounces it to you. With broken filters, the mail ends up in /dev/null again even though it was sent to you personally. With filters on the _actual_ sender, it lands in your inbox and gets read as intended.
You also sometimes find that lists won't add such headers if they already exist, so if someone sees a mail on one list and bounces it to another list, your filters for the latter list won't necessarily catch it. Again, the return-path works correctly.