Краткое примечание. Вы не можете определить, запущен ли какой-либо процесс, кроме вашего. Вы можете только сказать, что он работал в какой-то момент в недавнем прошлом. Процесс может просто перестать существовать в любой момент, включая точный момент, когда вы проверяете, имеет ли он соответствующий идентификатор.
Как говорится, этот тип определения может быть или не быть достаточно хорошим для вашей программы. Это действительно зависит от того, что вы пытаетесь сделать.
Вот сокращенная версия написанного вами кода.
private bool ProcessExists(int id) {
return Process.GetProcesses().Any(x => x.Id == id);
}