The punishment was imposed by FIFA's disciplinary committee on Tuesday after a group of supporters racially abused Denmark substitute Patrick Mtiliga every time he touched the ball in October's Group B qualifier in Sofia.
In an unusually strongly-worded statement, FIFA described the incidents at the Vasil Levski stadium as "offensive, denigratory and discriminatory".
Bulgaria, whose next home World Cup qualifier is against Malta on March 22, were also fined 35,000 Swiss francs ($37,800).
"Our main motive will be that we were punished disproportionately for racism and discriminatory behaviour of a very small group of the crowd in the Bulgaria v Denmark match," BFU's president Borislav Mihaylov said in a statement.
"(We were punished) not only with a game behind closed doors but we were also fined 35,000 Swiss francs.
"In fact, we are sanctioned twice for the same thing, which is not fair," added Mihaylov, who is also an executive committee member of European football's governing body UEFA.
The BFU said it will seek the support of the interior ministry to try to identify the trouble-makers and impose stadium bans "for a long time".
FIFA warned that a repetition of such incidents could lead to harsher penalties which include a possible points deduction, the forfeiting of the match or even disqualification from the competition.
The ban came as FIFA's European counterpart UEFA is accused of being too lenient on cases of racism, letting offending clubs off with fines.
Unbeaten Bulgaria have made a solid start to their campaign and are second in Group B with six points from four matches, four behind leaders Italy.
The BFU have made efforts to curb racism but there have still been several ugly incidents in the Balkan country over the last few years.
The governing body were fined 40,000 euros ($52,300) by UEFA for racist abuse by fans in their Euro 2012 qualifier against England in September, 2011.
Bulgarian media described the punishment as "deserved" and "logical", blaming local authorities for doing too little to deal with the problem.
Hungary were also ordered to play their next home World Cup qualifier, against Romania on March 22, behind closed doors following anti-Semitic chanting by fans during a friendly against Israel in August.
($1 = 0.7654 euros)
($1 = 0.9251 Swiss francs) (Reporting by Angel Krasimirov; editing by Toby Davis)