Разве вы не можете использовать переменные {logged_in} и {logged_out}?
В любом случае добавьте дополнительные условия:
{if "{segment_1}" == "home"}
{embed="include/title" title="welcome"}
{if:elseif "{segment_1}" == "login" && logged_out}
{embed="include/title" title="login"}
{if:else}
{if logged_in}
{embed="include/title" title="welcome"}
{if:else}
{embed="include/title" title="login"}
{/if}
{/if}
В более старых версиях EE у меня были проблемы с условием if: else, не работающим с условным выражением logged_in, поэтому вам может потребоваться просто заменить на:
{if logged_in}
{/if}
{if logged_out}
{/if}
Если вам нужно использовать переменную сеанса, убедитесь, что в шаблоне включен PHP, а синтаксический анализ задан до EE. И вам нужно немного изменить условное выражение:
{if:elseif "{segment_1}" == "login" && "0" == "<?= (isset($_SESSION['loggedin'])) ? "1" : "0"; ?>"}
Хотя вам, возможно, удастся сойти с рук (вам нужно проверить, чтобы подтвердить):
... && <?= (isset($_SESSION['loggedin'])) ? true : false; ?>}