There is no actual rule. In English blonde is more common for women but it wouldn't be wrong to use it for a man. I think the doubt arises because French has always been studied in England in the past and most lexicographers were probably influenced by their knowledge of French in treating this French loanword.
Yes, the correct English is "His niece is blonde", whereas his nephew would be "blond". However, as this was apparently pointed out five years ago and has not been amended, I doubt that anyone takes responsibility for updating such Duolingo errors. I would have reported blond/blonde, using the 'Report' rather than 'Discuss' button, but there was no tick-box option for indicating that the English translation is wrong. Another Duolingo disappointment.
Hm, I am native in Portuguese too! You should learn the "family nouns" in English soon, because they are very similar to the french ones. For instance: uncle -> oncle, aunt -> tante, parents -> parents, cousin -> cousin / cousine, fiancée -> fiancée, marriage -> mariage, couple -> couple. The writing is very similar, but the pronunciation is quite different.