Faits: A. Par contrat du 4 décembre 2006, X._ AG (ci-après: la bailleresse) a cédé à C._ Sàrl, A._ et B._ (ci-après: les locataires) l'usage d'une arcade de 71,86 m2 au rez-de-chaussée et d'un dépôt de 26,48 m2 en sous-sol de l'immeuble sis 1 rue ... à Genève, afin d'y installer un cabinet de soins esthétiques, de vente de produits naturels et de « relookage ». Le bail a été conclu pour une durée déterminée de cinq ans, allant du 1er janvier 2007 au 31 décembre 2011, avec une option de renouvellement pour une nouvelle période de cinq ans. Le loyer annuel a été fixé à 39'600 fr., charges non comprises, indexable en fonction de l'évolution de l'indice officiel suisse des prix à la consommation. Le précédent locataire versait en dernier lieu, depuis le 1er décembre 2005, un loyer annuel de 38'400 fr., charges non comprises. B. Par requête du 19 janvier 2007 adressée à la Commission de conciliation en matière de baux et loyers de Genève, les locataires ont contesté le loyer convenu. La tentative de conciliation n'ayant pas abouti, le Tribunal des baux et loyers du canton de Genève a été saisi. Les locataires ont fait entendre des témoins qui ont affirmé qu'ils avaient eu beaucoup de peine à trouver des locaux appropriés à leur activité commerciale, qu'ils avaient fait des recherches pendant environ une année et qu'ils avaient essuyé trois refus. Les locataires ont produit des statistiques officielles sur les loyers moyens et ils ont fait entendre le précédent locataire qui a déclaré que plusieurs commerçants lui avaient dit que son loyer était exagéré. Les locataires ont conclu à ce que le loyer annuel soit fixé à 25'872 fr., charges non comprises, à compter du 1er janvier 2007 et à ce que leur partie adverse soit condamnée à leur rembourser le trop-perçu. La bailleresse a conclu principalement à l'irrecevabilité de la requête, subsidiairement à son rejet, le loyer convenu n'étant pas abusif. Par jugement du 8 octobre 2008, le Tribunal des baux et loyers a fixé le loyer annuel à 29'172 fr. en se référant aux statistiques publiées par l'Office cantonal pour l'année 2007. Saisie d'un appel interjeté par la bailleresse, la Cour de justice, par arrêt du 7 décembre 2009, a considéré que le tribunal avait admis à juste titre que les locataires s'étaient trouvés contraints de conclure le contrat en raison d'une situation de pénurie; elle a estimé en revanche que le tribunal ne pouvait pas fixer le loyer sur la base de statistiques imprécises, sans avoir donné préalablement aux parties l'occasion d'apporter leurs preuves à ce sujet, étant observé que le litige n'avait porté jusqu'alors que sur la possibilité de contester le loyer initial. La cause a ainsi été renvoyée au Tribunal des baux et loyers pour instruction complémentaire. Sur requête du tribunal, la bailleresse a produit un acte authentique du 22 septembre 1959 d'où il ressort qu'elle a acquis l'immeuble à la suite d'une fusion par absorption d'une société immobilière dont elle était l'unique actionnaire. Elle a affirmé - sans l'établir - qu'elle était probablement propriétaire économique du bâtiment dès l'origine en précisant qu'il s'agissait d'une construction des années 1930. La bailleresse n'a pas produit de pièces permettant un calcul de rendement. Le tribunal a procédé à un transport sur place, afin de constater l'état réel des locaux loués. La bailleresse, qui conteste le résultat auquel conduit la statistique officielle, n'a pas produit d'éléments de comparaison en vue d'établir le loyer usuel. Après le transport sur place, la bailleresse n'a pas pris de conclusions motivées et a renoncé à plaider. Statuant à nouveau le 19 octobre 2010, le Tribunal des baux et loyers, se référant à sa connaissance des locaux et aux statistiques disponibles, a fixé à nouveau le loyer annuel à 29'172 fr., charges non comprises, dès le 1er janvier 2007. La bailleresse a appelé de ce jugement, soutenant que les conditions pour une contestation du loyer initial n'étaient pas remplies et, subsidiairement, que le loyer convenu (39'600 fr. par an) n'était pas abusif. Les locataires ont conclu au rejet de l'appel, c'est-à-dire à la confirmation d'un loyer annuel de 29'172 fr.. Par arrêt du 19 mars 2012, la Cour de justice, Chambre des baux et loyers, a rejeté l'appel. C. La bailleresse exerce un recours en matière civile au Tribunal fédéral. Invoquant une violation des art. 93 LTF, 270, 269, 269a CO, 11 OBLF, de l'ancien art. 274d CO, de l'art. 8 CC ainsi qu'une appréciation arbitraire des preuves, elle conclut à l'annulation de l'arrêt attaqué et reprend ses conclusions sur le fond, demandant subsidiairement le renvoi de la cause à l'autorité cantonale. Les locataires proposent le rejet du recours.