Faits: A. X._, ressortissant marocain né en 1954, a épousé une ressortissante suisse en 1979 et obtenu de ce fait une autorisation de séjour. Divorcé en 1984, il a épousé en 1988 en secondes noces Y._, ressortissante française. Les époux ont eu deux enfants, A._, né en 1988, et B._, né en 1989. Dès le 19 juillet 1993, X._ a été mis au bénéfice d'une autorisation d'établissement. Le couple XY._ a divorcé en 2003. Les enfants ont été placés sous la garde de leur mère. A sa majorité, B._ a été replacé sous l'autorité parentale de Y._ en raison d'une déficience mentale nécessitant un accompagnement constant par des adultes pour les tâches élémentaires de la vie quotidienne. Pendant son séjour en Suisse, X._ a été condamné à des peines de 10 mois d'emprisonnement (1982), 20 jours d'arrêts (1987), 6 mois d'emprisonnement (1996) et deux ans et demi d'emprisonnement (1997), toujours pour infractions à la LStup (RS 812.121). Entre mars 1992 et avril 2006, il a bénéficié de l'aide sociale pour un montant supérieur à CHF 240'000.-. En avril 2006, X._ a quitté la Suisse. Le 3 juillet 2006, il a été arrêté en Espagne en possession de stupéfiants et incarcéré pendant 3 ans et un mois. Son autorisation d'établissement en Suisse a pris fin pendant cette période. B. Le 7 janvier 2009, X._ a déposé à Barcelone une demande de visa Schengen pour pouvoir séjourner en Suisse auprès de son ex-épouse et de leurs deux enfants. Par décision du 24 février 2009, le Service des migrations du canton de Neuchâtel (ci-après le Service cantonal) a refusé l'octroi de ce visa et de l'autorisation de séjour. Saisi d'un recours contre cette décision, le Département de l'économie du canton de Neuchâtel (ci-après le Département de l'économie) l'a rejeté le 8 juin 2010. Le 10 août 2010, X._ a interjeté un recours devant le Tribunal administratif du canton de Neuchâtel contre la décision du Département de l'économie. Le 8 avril 2011, le Service cantonal a prononcé le renvoi de X._, qui avait séjourné à la Chaux-de-Fonds sans être en possession d'un visa ni d'une autorisation de séjour. Le même jour, l'Office fédéral des migrations a prononcé contre le prénommé une interdiction d'entrée en Suisse valable jusqu'au 7 avril 2014. Par arrêt du 3 novembre 2011, la Cour de droit public du Tribunal cantonal de la République et canton de Neuchâtel (ci-après le Tribunal cantonal), qui a succédé au Tribunal administratif, a rejeté le recours de X._ à l'encontre de la décision du Département de l'économie du 8 juin 2010. C. Par acte du 7 décembre 2011, X._ forme un recours en matière de droit public au Tribunal fédéral contre l'arrêt du 3 novembre 2011. Il conclut à l'annulation de cet arrêt et, principalement, à ce qu'un visa Schengen et une autorisation de séjour lui soient accordés. Subsidiairement, il demande le renvoi de l'affaire à l'instance inférieure pour nouvelle décision dans le sens des considérants, le tout sous suite de frais et dépens. Le Service cantonal et le Tribunal cantonal concluent au rejet du recours en se référant aux motifs de l'arrêt attaqué. Le Département de l'économie et l'Office fédéral des migrations ont déposé des déterminations tardives.