Если говорить про реализацию на Go - как вариант...
1. создаёте файл и encoder как тут
https://github.com/viert/go-lame
2. в цикле читаете ваши файлы при помощи mp3 decoder'a, например как тут
https://github.com/hajimehoshi/go-mp3/blob/master/...
и пишете их содержимое в encoder
Там, где нужна пустота - попробуйте записать/сгенерировать 1сек или меньше тишины и когда нужно - пишите её в encoder.
Если задачу нужно просто решить и использовать Go не обязательно - её можно решить при помощи консольной команды `ffmpeg` примерно так:
ffmpeg file1.mp3 file2.mp3 silence1sec.mp3 silence1sec.mp3 output.mp3
Если всё же нужно реализовать на Go - то есть, как минимум две обёртки
https://github.com/giorgisio/goav
https://github.com/xfrr/goffmpeg
Можете сначала сделать чтобы из консоли всё заработало, а потом уже "покрутить" обёртки