Это не ноль, это пустая строка. Это важное различие!
Вы можете получить то, что хотите, используя эту конструкцию:
String[] tokens = "0110000".split("(?<=.)";
// the (?<=.) means that there must be a character
// before the match, hence the initial empty string won't match
System.out.println(Arrays.toString(tokens)));
Но я не думаю, что это хорошая идея. Я не могу себе представить, почему вы хотите разделить строку на массив из одной буквы. Вы, вероятно, должны использовать это вместо:
char[] chars = "001100".toCharArray();