It's because you are trying to access .ProcessName
when .Find() doesn't have anything to return:
Try this:
var matchingProcess = Process().Find(x => x.ProcessID == p.ProcessID);
ProcessName = matchingProcess ? matchingProcess.ProcessName : string.Empty;