Creo que el segundo es más eficiente ya que requiere solo una selección, pero para estar seguro, debe EXPLICAR cada consulta y verificar los resultados.
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;