Why don't you try a solution like this:
var query = (from left in leftList
join right in rightList on left.Id equals right.Id into joinedList
from sub in joinedList.DefaultIfEmpty()
select new Person {
Id = left.Id,
Name = left.Name,
Changed = sub == null ? left.Changed : sub.Changed }).ToList();