Once you remove at index N, the next value in the list will take it place, and it will be skipped in verification, because you increment an index. So firstly create a list of items to be removed, and then use it as source for removal.
List<GameObject> allDoors = doorsLeft.Union(doorsRight).ToList();
List<GameObject> toRemove = new List<GameObject>();
for(int i = 0; i < allDoors.Count; i++)
{
if(allDoors[i].transform.parent.name != "Wall_Door_Long_01" && allDoors[i].transform.parent.name != "Wall_Door_Long_02")
{
toRemove.Add(allDoors[i]);
}
}
foreach(var it in toRemove)
{
allDoors.Remove(it);
}