How to apply Normalisation using the MinMaxScaler() to all Columns, but Exclude the Categorical?
If you want to apply the result of fit_transform, you must assign to your columns.
columns = ['S_LENGTH', 'S_WIDTH', 'P_LENGTH', 'P_WIDTH']

min_max = preprocessing.MinMaxScaler()
df[columns] = min_max.fit_transform(df[columns])
df.head()

Output
   ID  S_LENGTH  S_WIDTH  P_LENGTH  P_WIDTH    SPECIES
0   1       0.0      0.0       1.0      0.0  VIRGINICA
1   2       1.0      1.0       0.0      1.0     SETOSA