Faits :
A.
A.a. Incarcéré le 21 juillet 2015, X._ a été condamné par jugement du 16 septembre 2016 du Tribunal correctionnel de la République et canton de Genève, pour infraction grave à la LStup et séjour illégal, à une peine privative de liberté de quatre ans et demi.
Statuant sur demande de X._, le Tribunal d'application des peines et mesures (ci-après : TAPEM) a, par jugement du 11 juillet 2018, ordonné sa libération avec effet au jour de son renvoi de Suisse, au plus tôt le 18 juillet 2018. Il ressort de ce jugement que le prénommé a fait l'objet d'une décision de renvoi de Suisse en date du 12 juin 2009 (entrée en force le 24 juin 2009).
Le 5 août 2018, X._ n'est pas revenu de son congé et a quitté le territoire suisse pour gagner l'Espagne.
En réponse à un courrier de X._ dans lequel celui-ci prétendait avoir exécuté la décision de renvoi de juin 2009, le Service de l'application des peines et mesures (ci-après : SAPEM) a, par courrier du 10 septembre 2018, indiqué qu'au vu de son non-retour de congé, celui-ci demeurait en arrestation pour un solde de peine d'un an, cinq mois et 13 jours. Le SAPEM a joint à cet envoi l'ordre d'exécution " Ripol " du même jour, adressé à la prison de Champ-Dollon. Il a en outre refusé de restituer à l'intéressé ses documents d'identité et d'autres effets personnels ainsi que de solder ses comptes.
A.b. Le 24 septembre 2018, X._ a formé recours contre l'ordre d'exécution de peine du 10 septembre 2018 par lequel le SAPEM avait requis sa détention. Il a également formé recours contre la décision du SAPEM du même jour, lui signifiant avoir ordonné son arrestation en raison de son non-retour de congé du 5 août 2018 et refusant de lui restituer ses effets personnels ainsi que de solder ses comptes.
Par arrêt du 2 octobre 2018, la Chambre pénale de recours de la Cour de justice genevoise a rejeté ce recours, dans la mesure de sa recevabilité, ainsi que la demande d'assistance judiciaire et de désignation d'un avocat d'office. Elle a condamné X._ au paiement des frais de la procédure de recours.
Par arrêt du 30 janvier 2019, le Tribunal fédéral a admis le recours en matière pénale formé par X._ contre l'arrêt du 2 octobre 2018, a annulé l'arrêt attaqué et a renvoyé la cause à la cour cantonale afin qu'elle annule les ordres d'exécution de peine et d'arrestation du 10 septembre 2018 (arrêt 6B_1121/2018). La cour cantonale était également invitée à examiner à nouveau la question de la restitution de ses effets personnels et du solde de ses comptes (consid. 2 in fine) et la question de l'assistance judiciaire (consid. 3). En substance, le Tribunal fédéral a considéré qu'à partir du moment où le recourant avait quitté le territoire suisse après le 18 juillet 2018, le renvoi n'avait plus à être exécuté par une autorité. Il en a déduit que le recourant se trouvait au bénéfice d'une libération conditionnelle, conformément au jugement du TAPEM du 11 juillet 2018.
Statuant sur renvoi par arrêt du 10 avril 2019 (procédure xxx), la Chambre pénale de recours de la Cour de justice genevoise a annulé les ordres d'exécution de peine et d'arrestation délivrés par le SAPEM et a ordonné la restitution à X._ de ses effets personnels. Elle lui a désigné un avocat d'office, auquel elle a alloué une indemnité de 1'992 fr. 45 à la charge de l'Etat, et a laissé les frais de la procédure de recours à la charge de l'Etat.
A.c. Le 11 septembre 2018, X._ a formé une "requête en interprétation" (cf. art. 83 CPP), subsidiairement, une demande de révision auprès du TAPEM, en lien avec sa décision du 11 juillet 2018. Par décision du 15 octobre 2018, le TAPEM a refusé de donner suite à cette requête.
Le 26 octobre 2018, X._ a recouru contre la décision du TAPEM, concluant, avec suite de frais et dépens, à son annulation et à ce que le point 1 du dispositif du jugement du 11 juillet 2018 soit interprété en ce sens qu'il jouissait pleinement de la libération conditionnelle accordée à cette date. Il a sollicité en outre l'assistance judiciaire et la désignation de son conseil comme défenseur d'office.
Par courrier du 11 février 2019, la Chambre pénale de recours de la Cour de justice genevoise a invité le conseil de X._ à lui indiquer s'il maintenait son recours du 26 octobre 2018, dans la mesure où, eu égard à l'arrêt du Tribunal fédéral du 30 janvier 2019, celui-ci semblait être devenu sans objet. Le conseil a indiqué qu'il adhérait au fait que son recours du 26 octobre 2018 ne méritait plus d'être tranché sur le fond. Les frais devaient être laissés à la charge de l'Etat, l'assistance judiciaire devait être accordée à son client et un avocat d'office devait lui être désigné dans le cadre du recours.
B.
Par arrêt du 10 avril 2019, la Cour de justice de la République et canton de Genève, Chambre pénale de recours, a déclaré le recours sans objet et a rayé la cause du rôle. Elle a rejeté la demande d'assistance juridique et condamné X._ aux frais de la procédure de recours, comprenant un émolument de 500 francs.
C.
X._ forme un recours en matière pénale auprès du Tribunal fédéral contre cet arrêt du 10 avril 2019 et conclut, avec suite de frais et dépens, à son annulation en tant qu'il est condamné aux frais de la procédure cantonaux et dans la mesure où le bénéfice de l'assistance juridique lui est refusé. Il requiert que les frais de procédure soient laissés à la charge du canton de Genève et qu'il soit mis au bénéfice de la défense d'office dans le cadre de la procédure de recours, une indemnité de 2'369 fr. 40 lui étant allouée. Subsidiairement, le recourant conclut au renvoi de la cause à la cour cantonale pour qu'elle fixe l'indemnité. Le recourant requiert le bénéfice de l'assistance judiciaire dans le cadre de la procédure fédérale.
D.
Invités à se déterminer sur le recours, la cour cantonale s'est référée à son arrêt tandis que le TAPEM n'a pas présenté d'observation dans le délai imparti.
Considérant en droit :
1.
Seules sont litigieuses en l'espèce, les questions de frais et d'assistance judiciaire au niveau cantonal. Le recourant invoque une violation de l'art. 29 al. 3 Cst. et une application arbitraire des art. 130, 132 et 428 CPP.
1.1.
1.1.1. Les art. 130, 132 et 428 CPP ne sont applicables, en l'occurrence, qu'à titre de droit cantonal supplétif, dès lors qu'à teneur de l'art. 439 al. 1 CPP, il appartient aux cantons de régler la procédure d'exécution des peines et des mesures (cf. arrêts 6B_243/2017 du 21 septembre 2017 consid. 2.1; 6B_694/2016 du 22 mai 2017 consid. 8; cf. art. 41 al. 2 et 42 al. 2 de la loi d'application genevoise du code pénal suisse et d'autres lois fédérales en matière pénale [LaCP/GE; RS GE E 4 10]). Le Tribunal fédéral ne contrôle l'application du droit cantonal qu'avec un pouvoir d'examen limité à l'arbitraire (ATF 141 I 105 consid. 3.3.1 p. 108). Il examine en revanche librement les conditions d'octroi de l'assistance judiciaire sous l'angle de l'art. 29 al. 3 Cst., à l'exception des constatations de fait qui s'y rapportent, qu'il n'examine que sous l'angle de l'arbitraire (ATF 135 I 221 consid. 2.1 p. 223; 134 I 12 consid. 2.3).
1.1.2. En principe, selon l'art. 423 al. 1 CPP, les frais de procédure sont mis à la charge de la Confédération ou du canton qui a conduit la procédure; les dispositions contraires du CPP étant réservées.
Les frais sont répartis selon le principe en vertu duquel celui qui les cause doit payer (ATF 138 IV 248 consid. 4.4.1 p. 254).
A teneur de l'art. 428 CPP, les frais de la procédure de recours sont mis à la charge des parties dans la mesure où elles ont obtenu gain de cause ou succombé. La partie dont le recours est irrecevable ou qui retire le recours est également considérée avoir succombé.
Lorsqu'un procès devient sans objet, il y a lieu de statuer sur les effets accessoires (frais et dépens) en tenant compte de l'état de fait existant avant l'événement mettant fin au litige ainsi que de l'issue probable de celui-ci (cf. arrêts 6B_1118/2016 du 10 juillet 2017 consid. 1.2.2; 1B_115/2017 du 12 juin 2017 consid. 2.3.1; THOMAS DOMEISEN, in Basler Kommentar, Schweizerische Strafprozessordnung/ Jugendstrafprozessordnung, 2e éd. 2014, n° 14 ad art. 428 CPP; en ce sens, SCHMID/JOSITSCH, Schweizerische Strafprozessordnung, Praxiskommentar, 3e éd. 2018, n° 4 ad art. 428 CPP; s'agissant de la procédure fédérale, cf. ATF 125 V 373 consid. 2a p. 374 s.; arrêts 6B_1182/2014 du 23 octobre 2015 consid. 7; 6B_118/2009 du 20 décembre 2011 consid. 11.2 non publié in ATF 138 I 97). Si l'issue probable de la procédure n'apparaît pas évidente, il y a lieu de recourir aux critères généraux de procédure. Ceux-ci commandent de mettre les frais et dépens à la charge de la partie qui a provoqué la procédure devenue sans objet ou chez qui résident les motifs pour lesquels elle a pris fin de la sorte (ATF 118 Ia 488 consid. 4a p. 494; arrêts 6B_1182/2014 du 23 octobre 2015 consid. 7; 1B_355/2010 du 1er juillet 2011). Ce système a pour but d'éviter de pénaliser, en lui faisant supporter les coûts de la procédure, celui qui a formé un recours en toute bonne foi lorsque celui-ci est rayé du rôle en raison d'un changement de circonstances ultérieur qui ne lui est pas imputable (DOMEISEN, op. cit., ibidem; cf. ATF 118 Ia 488 consid. 4a p. 494 s.).
1.1.3. En dehors des cas de défense obligatoire (art. 130 CPP), l'art. 132 al. 1 let. b CPP soumet le droit à l'assistance d'un défenseur d'office aux conditions que le prévenu soit indigent et que la sauvegarde de ses intérêts justifie une telle assistance (cf. sur l'interprétation de cette dernière condition: ATF 143 I 164 consid. 3.5 p. 174; 128 I 225 consid. 2.5.2 p. 232 s.; 122 I 49 consid. 2c/bb p. 51 s.; 120 Ia 43 consid. 2a p. 44 s. et les références citées).
L'art. 29 al. 3 Cst. conditionne notamment l'octroi de l'assistance judiciaire gratuite à l'existence de chances de succès dans la cause de celui qui réclame celle-ci (cf. ATF 139 III 396 consid. 1.2 p. 397; 139 I 206 consid. 3.3.1 p. 214; 138 III 217 consid. 2.2.4 p. 18; 133 III 614 consid. 5 p. 616; 129 I 129 consid. 2.3.1 p. 135 s.). Déterminer s'il existe des chances de succès est une question de droit, que le Tribunal fédéral examine librement (ATF 129 I 129 consid. 2.1 p. 133).
Selon l'art. 436 al. 2 CPP, si ni un acquittement total ou partiel, ni un classement de la procédure ne sont prononcés mais que le prévenu obtient gain de cause sur d'autres points, il a droit à une juste indemnité pour ses dépenses.
1.2.
1.2.1. L'arrêt entrepris déclare sans objet le recours dirigé contre la décision de refus d' "interpréter " le jugement de libération conditionnelle du 11 juillet 2018 (décision du TAPEM du 15 octobre 2018).
La demande initiale du recourant était fondée sur l'art. 83 al. 1 CPP, à teneur duquel, l'autorité pénale qui a rendu un prononcé dont le dispositif est peu clair, contradictoire ou incomplet ou qui est en contradiction avec l'exposé des motifs, l'explique ou le rectifie à la demande d'une partie ou d'office.
L'explication et la rectification au sens de cette disposition ne visent pas le réexamen matériel d'un jugement mais sa clarification, respectivement la correction d'erreurs manifestes (ATF 142 IV 281 consid. 1.3 p. 284).
En l'occurrence, il s'agissait de clarifier la portée du ch. 1 du dispositif du jugement du 11 juillet 2018, à teneur duquel la libération conditionnelle du recourant était ordonnée " avec effet au jour de son renvoi de Suisse ". En substance, la question était de savoir si " le renvoi de Suisse " devait être exécuté par une autorité compétente ou si le départ volontaire suffisait pour donner effet au jugement de libération conditionnelle.
1.2.2. En l'espèce, l'événement qui a rendu sans objet la procédure contre le refus "d'interprétation" du jugement de libération conditionnelle (décision du TAPEM du 15 octobre 2018) est l'arrêt du Tribunal fédéral du 30 janvier 2019. Dans le cadre de la procédure dirigée contre les ordres d'exécution de peine et d'arrestation du SAPEM, le Tribunal fédéral a renvoyé la cause à la cour cantonale afin qu'elle annule ces ordres dès lors que le départ de Suisse du recourant après le 18 juillet 2018 avait donné effet au jugement de libération conditionnelle (arrêt 6B_1121/2018). En cela, le Tribunal fédéral a clarifié le jugement de libération conditionnelle du 11 juillet 2018.
Ainsi, le motif ayant rendu la cause sans objet est intervenu après le recours que le recourant a formé contre la décision du TAPEM du 15 octobre 2018. Au moment du recours en question, le recourant avait été débouté, d'une part, dans la procédure contre les ordres d'exécution de peine et d'arrestation du SAPEM et, d'autre part, dans la procédure en explication/clarification de la décision de libération conditionnelle. Il avait ainsi tout intérêt à poursuivre cette dernière procédure, dans la mesure où elle était susceptible de donner effet à la décision de libération conditionnelle.
En tant que le Tribunal fédéral a jugé que le départ volontaire de Suisse donnait effet à la libération conditionnelle du recourant, il a interprété le dispositif du jugement du 11 juillet 2018 différemment de plusieurs autorités (cf. décision du SAPEM du 10 septembre 2018; arrêt de la Cour de justice genevoise du 2 octobre 2018 et décision du TAPEM du 15 octobre 2018, p. 1). D'après l'arrêt du Tribunal fédéral, " On ignore quelle forme aurait dû prendre (...) un renvoi exécuté par les autorités compétentes " (arrêt 6B_1121/2018 du 30 janvier 2019 consid. 2). Aussi, la cour cantonale ne pouvait considérer que l'issue probable de la procédure contre le refus de clarifier/d'expliquer la décision de libération conditionnelle (cf. art. 83 CPP) aurait été défavorable au recourant. D'ailleurs, si elle a déclaré sans objet le recours dans la présente cause, c'est précisément au motif que le Tribunal fédéral avait, dans l'intervalle, interprété la décision de libération conditionnelle dans un sens favorable au recourant et contraire aux autorités précédentes. Partant, il était insoutenable de considérer, alors même que le Tribunal fédéral s'était écarté du sens donné par les autorités précédentes à la décision de libération conditionnelle, que ce jugement " ne comportait à l'évidence aucune erreur ou ambiguïté de sorte qu'elle aurait probablement refusé d'entrer en matière ou rejeté le recours ". Il en résulte que la cour cantonale a fait preuve d'arbitraire dans l'application du CPP, à titre de droit cantonal supplétif, en mettant les frais à la charge du recourant.
L'indigence du recourant et la nécessité de l'assistance d'un défenseur d'office ne sont pas remises en cause (cf. art. 132 CPP cum art. 41 al. 2 et 42 al. 2 LaCP/GE). Son recours cantonal n'était à l'évidence, pas dépourvu de chances de succès (cf. art. 29 al. 3 Cst.), contrairement à ce que retient la cour cantonale. En lui refusant l'assistance gratuite d'un défenseur, la cour cantonale a fait preuve d'arbitraire dans l'application du droit de procédure et a violé l'art. 29 al. 3 Cst.
L'arrêt entrepris doit être annulé et la cause renvoyée à la cour cantonale pour qu'elle laisse les frais de la procédure à la charge du canton et qu'elle alloue une indemnité au défenseur d'office du recourant pour la procédure cantonale.
2.
Au vu de ce qui précède, le recours doit être admis, l'arrêt entrepris annulé et la cause renvoyée à l'autorité précédente pour nouvelle décision dans le sens des considérants. Le recourant, qui obtient gain de cause, ne supportera pas de frais judiciaires (art. 66 al. 1 LTF). Il a droit à des dépens à la charge du canton de Genève (art. 68 al. 1 LTF), de sorte que sa demande d'assistance judiciaire devient sans objet.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt entrepris est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Genève versera à l'avocat du recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 11 juillet 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Klinke