For list comprehension, this should work:
rep :: (Enum a, Num a) => a -> t -> [t]
rep num list = [ a | a <- [list], _ <- [1..num]]
Or in a more efficient and nice form (Thanks to @chi):
rep num list = [ list | _ <- [1..num]]
Demo:
λ> rep 3 3
[3,3,3]
λ> rep 3 "hello"
["hello","hello","hello"]
Your recursive program works fine for me in both cases.