Olá, Giovany!
Parabéns por concluir a atividade Organizando seu portfólio. Ficou muito nítido como você buscou ir além do básico, explorando diferentes formas de iterar sobre uma lista e tratar dados nulos.
Sua primeira solução com o laço for tradicional e a verificação if projeto is None é excelente. Ela é direta, objetiva e muito legível, o que é fundamental para quem está começando a ler seu código. Já a segunda forma utilizando List Comprehension, mostra que você está atento a recursos mais avançados do Python. Embora seja muito poderosa para criar listas de forma concisa, usá-la apenas para imprimir valores é um ótimo exercício de sintaxe, mesmo que no dia a dia o for comum seja mais recomendado para ações de exibição (efeitos colaterais).
Essa curiosidade de testar "maneiras diferentes" de chegar ao mesmo resultado é o que traz profundidade ao seu aprendizado. O uso do if dentro da compreensão de lista mostra que você já compreende como integrar lógica condicional em estruturas compactas.
Se você quiser se aprofundar em quando é melhor usar o laço tradicional ou essas formas mais curtas, recomendo ler um pouquinho sobre Python - List Comprehension.
Na sua visão, você acredita que a versão mais curta facilita a leitura em projetos maiores ou a versão com o for estruturado ajuda mais na hora de encontrar um erro no código?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!