Uważam, że drugi jest bardziej wydajny, ponieważ wymaga tylko jednego wyboru, ale dla pewności należy WYJAŚNIĆ każde zapytanie i sprawdzić wyniki.
EXPLAIN select tasks.*
from tasks
where
some criteria
and task.project_id not in (select id from project where project.is_template = 1);
EXPLAIN select tasks.*
from tasks, project
where
some criteria
and task.project_id = project.id and project.is_template <> 1;