One slow but understandable way is
var matched = cars.Where(car => intList.Contains(car.id)).ToList();
You can do this faster by including intListin the dictionary and using ContainsKey.
var intLookup = intList.ToDictionary(k => k);
var matched = cars.Where(car => intLookup.ContainsKey(car.id)).ToList();
, HashSet:
var intHash = new HashSet(intList);
var matched = cars.Where(car => intHash.Contains(car.id)).ToList();