Using Sklearn's predefined split
The result that all values are equal to -1 is to be expected, since you're checking if the indices from your training set occur in your validation set, which by definition is not the case since your train and validation sets should not have the same observations. If you want to add the 0/1 indicator to you original dataset you have to use X instead of X_train:
split_index = [0 if x in X_val.index else -1 for x in X.index]

This will set the index to 0 if it occurs in X_val and -1 for all other cases.