Generally it looks good, at least to an Haskell beginner like me.
I find the use of
dropWhile to be a bit confusing. I admit I had to read your comment to understand why you used it.
I think it could also have introduced a bug. What is the expected behaviour for
split ',' ",,"?
Your code returns
[""] but I would expect
["","",""]. Was your behaviour intended?
This solution fixed the issue.
split :: (Eq a) => a -> [a] -> [[a]]
split _  = 
split separator ys = f : (split separator (dropSeparator separator rest))
where (f, rest) = break (== separator) ys
dropSeparator :: Eq a => a -> [a] -> [a]
dropSeparator _  = 
dropSeparator separator (x:xs) = if x == separator then xs else x:xs
I prefer using meaningful variable names, such as
separator, even if I'm not sure if it is idiomatic Haskell. Ditto for the parentheses and the introduction of the helper function.