Chave estrangeira pode ficar nula?

No meu banco a chave estrangeira está nula, só que… eu precisava saber o ID da nota da tabela nota quando dado select, e mostrar de qual nota o produto é na tabela prod, só que a FK na tabela prod está ficando nula.

Se ela está ficando nula é porque seu insert não está atribuindo valor á coluna, logo concluímos que esta coluna também não possuí a restrição not null aplicada!

A FK pode, a PK não.
Veja, você pode ter cenários em que um determinado registro na tabela B não esteja, necessariamente, referenciado em uma tabela A.
Por exemplo: num sistema que gerencia estoque, você pode ter uma tabela Categoria e outra Produto, onde cada Produto está dentro de um Categoria, logo, um Produto terá uma FK para Categoria.
Eventualmente, você pode receber um produto que não se enquadre em nenhuma categoria, mas precisa inserir o mesmo no sistema. Isso fará com que você tenha um produto com FK nula, até cadastrar uma categoria compatível com a do produto em questão.

No caso o meu só teria que mostrar o ID da tabela A na FK da tabela B, o que não está ocorrendo

Vamos por partes. Que tipo de relação existe entre A e B? É bidirecnional ou não?

Está sim.

Só com isso de informação fica difícil.
Primeiro que, pelo que entendi, é um sistema que gerencia vendas (produtos, notas, etc).
Então, você precisa entender que, em geral, a relação entre produto e nota é de N : M (muitos para muitos), logo, você precisa de uma tabela associativa que permita indicar a relação entre produto e nota (as PKs de cada uma das tabelas) e, no mínimo, a quantidade daquele produto. Não sei se você estruturou tuas tabelas desta maneira, mas este é o jeito que irá funcionar.

Ok, vou tentar atualizar a tabela assim.
Agora está dando este erro: Cannot add or update a child row: a foreign key constraint fails (xml.prod, CONSTRAINT fk_prod_ide FOREIGN KEY (IDNfe) REFERENCES ide (ID) ON DELETE NO ACTION ON UPDATE NO ACTION).