If you don't need any additional info for each list (just a title) then I recommend you not to use lists. You can generate these lists based on an attribute.
Let's say the attribute is called 'custom_attribute', you can get the list products like this:
$collection = Mage::getModel('product/collection')->addAttributeToFilter('custom_attribute', VALUE_HERE);
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
If you want to be able to put a product in more than one list you need to create a custom entity in a 'many to many' relation with the products.
I may recommend you this extension that will allow you to build such an entity and relate it to the products. It will build your table and code needed to do this. You may need to change the design a little. (I hope the link is not considered as self promotion).