Как разрешить доступ к директориям через .htaccess если существует определённая переменная в $_SESSION?
Если вкратце, то нет. В любом случае потребуется какая-то промежуточная логика, которая будет лезть в PHP-шную сессию и решать отдавать файлы или нет. Например, это может быть Nginx+Lua-модуль, node.js или любой другой софт (например, своя прослойка на Python/Tornado или что-то вроде)
Почитайте про RewriteMap, и проверяйте по IP,куках,имени файла сесии(если сесии в файлах)...