В первом фрагменте кода вы берете список строк, удаляете первый элемент и добавляете его в конец. Таким образом, вы добавляете строку в список, создавая None Type. Наименьшее изменение кода было бы приведение строки к списку строк:
s = ["h", "e", "l", "l", "o"]
def reverse(s):
if len(s) == 1:
return s
else:
return reverse(s[1:]) + list(s[0])