Je pense que la seconde est plus efficace car elle ne nécessite qu'une seule sélection, mais pour être sûr, vous devez EXPLIQUER chaque requête et vérifier les résultats.
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;