No, it cannot return null. If you look at the source of it, it even guarantees it with code contracts:
public String[] Split(params char[] separator) {
Contract.Ensures(Contract.Result<String[]>() != null);
All public overloads also make the same guarantee.