Sachverhalt: A. Das Kreisgericht Rheintal verurteilte X._ am 29. März 2012 wegen Hausfriedensbruchs und Teilnahme an einer unbewilligten Demonstration zu einer bedingten Geldstrafe von 20 Tagessätzen zu Fr. 20.-- und zu einer Busse von Fr. 200.--. Die Berufung des Verurteilten wies das Kantonsgericht St. Gallen am 22. November 2012 ab. Das Bundesgericht hiess die Beschwerde in Strafsachen von X._ am 24. September 2013 teilweise gut. Es hob das kantonsgerichtliche Urteil auf und wies die Sache zur Gewährung des rechtlichen Gehörs im Zusammenhang mit dem Vorwurf der Teilnahme an einer unbewilligten Demonstration und zur Prüfung der Voraussetzungen für eine Strafbefreiung an die Vorinstanz zurück (Verfahren 6B_116/ 2013). Das Kantonsgericht stellte am 6. Mai 2014 fest, infolge Teilrückzugs der Berufungsanträge seien die Schuldsprüche nicht mehr Gegenstand des Verfahrens, der kreisgerichtliche Entscheid bleibe diesbezüglich unverändert. Das Kantonsgericht büsste X._ mit Fr. 200.-- und auferlegte ihm die gesamten erstinstanzlichen Verfahrenskosten von Fr. 1'980.-- sowie drei Viertel der Entscheidgebühr des Berufungsverfahrens von Fr. 1'800.--. Die Kosten des Rückweisungsverfahrens von Fr. 1'500.-- nahm es auf die Staatskasse. B. X._ beantragt mit Beschwerde in Strafsachen, die Dispositivziffern 3 Satz 1 (erstinstanzliche Verfahrenskosten) und 4 (Kosten des Berufungsverfahrens) seien aufzuheben. Es seien keine Kosten zu erheben. Eventualiter ersucht er um Gewährung der unentgeltlichen Rechtspflege. C. Das Kantonsgericht hat auf eine Vernehmlassung verzichtet. Die Staatsanwaltschaft des Kantons St. Gallen hat sich nicht vernehmen lassen. 