Instead of a set difference, List.Contains where the list is the numbers you are after, and the item is the parameter value of each door (make sure you have the item set to @L1 as it will otherwise look for a list of parameter values in your list). From there you should have a flat list of boolean values which can be used as a mask in a FilterByBoolMask node.
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
toList = lambda x : x if hasattr(x, '__iter__') else [x]
names = toList(IN[0])
# Filter Doors in Active View and by Mark Value
filter_doors = [x for x in FilteredElementCollector(doc,doc.ActiveView.Id).OfCategory(BuiltInCategory.OST_Doors)
.WhereElementIsNotElementType().ToElements()
if x.get_Parameter(BuiltInParameter.ALL_MODEL_MARK).AsString() in names]
OUT = filter_doors
Inputs are backwards; the hard coded acceptable values are the list input. They should not have list levels enabled, or be set to @L2. The item input is the the parameter values (not sure you need the x+"" code block). They should be @L1. Lacing should work on Auto (as you are using an @L1 one of the inputs is a single item, so Auto will kick over to longest), but if not longest will work if not.