твое решение не работает, потому что 'InputMediaPhoto(' + str(id) + ')' вернет тебе строку, которая не будет исполняться интерпретатором.
для прохода по элементам массива используй итераторы(если тебе нужно последовательное исполнение) или .map если в итоге тебе нужно получить коллекцию результатов.
arrayID=[id1, id2, id3, idN]
bot.send_media_group(message.from_user.id, [ InputMediaPhoto(id) for id in arrayID ])