Fatti: A. Con sentenza del 29 novembre 2018, la Corte delle assise criminali ha riconosciuto A._ autore colpevole di ripetuta infrazione alla legge federale sugli stranieri, nonché di ripetuta infrazione aggravata alla LStup per avere alienato, offerto rispettivamente procurato in altro modo a terzi almeno 418 grammi di cocaina (con un grado di purezza indeterminato). Lo ha condannato a una pena detentiva di 24 mesi, da dedursi il carcere preventivo sofferto, e ha ordinato la sua espulsione dal territorio svizzero per un periodo di 5 anni. B. Adita con appello del condannato e appello incidentale del pubblico ministero, con sentenza del 3 aprile 2019 la Corte di appello e di revisione penale del Cantone Ticino (CARP) ha respinto il primo e accolto parzialmente il secondo. In breve, constatata la crescita in giudicato della condanna per titolo di ripetuta infrazione alla legge federale sugli stranieri in assenza di impugnazione, la Corte cantonale ha condannato A._ per titolo di ripetuta infrazione aggravata alla LStup riferita a una quantità di cocaina pari a 486 grammi (con un grado di purezza indeterminato). Gli ha inflitto una pena detentiva di 28 mesi, da dedursi il carcere preventivo sofferto, e ha confermato l'espulsione dal territorio svizzero per una durata di 5 anni. C. Avverso questo giudizio, A._ si aggrava al Tribunale federale con un ricorso in materia penale. Censurando un accertamento dei fatti contrario al diritto, postula la riforma della sua condanna per titolo di ripetuta infrazione aggravata alla LStup limitandola a 108 grammi di cocaina (con un grado di purezza indeterminato), una consistente riduzione della pena detentiva inflittagli, in una misura compatibile con la sospensione condizionale, la concessione di quest'ultima, nonché la rinuncia a pronunciare la sua espulsione. Chiede inoltre di essere posto al beneficio dell'assistenza giudiziaria con gratuito patrocinio. Al momento di trasmettere l'incarto al Tribunale federale, la CARP ha comunicato di rinunciare a formulare osservazioni sul ricorso, rinviando ai considerandi della sua sentenza. Invitato a esprimersi sul gravame, il Ministero pubblico del Cantone Ticino ne ha postulato la reiezione senza particolari osservazioni.