Se você quer criar uma tabela e relacionar a outras você vai precisar criar as chaves estrangeiras sim.
Mas se pergunte se poderá haver mais de uma entrada para este relacionamento, por exemplo: Um usuário poderá ter vários endereços? Se sim, crie uma tabela chamada enderecos separada da tableta usuarios e a relacione. Um usuário pode ter vários gêneros? Não, então crio um campo simples na tabela de usuarios.
Pesquise sobre normalização de banco de dados para entender todos os casos. Acho válido separar dados em diferentes tabelas e criar estes relacionamentos se os dados pertencem a um domínio/escopo definido ou se essa tabela pode ser "reutilizada", digamos assim.
Eu manteria gênero como um campo simples (booleano ou não), até facilitaria na hora de fazer a consulta.