This reproduced your error. Note that Gender has only NA values. I suggest you look at the data frame content just before you plot the data. If this hint does not solve your problem, please make a reprex as requested by andresrcs.
Run100.mw <- data.frame(YEAR = rep(c(2018, 2019), 10),
Gender = rep(c("Male", "Male", "Female", "Female"), 5),
MARK = rnorm(20, 5, 1), stringsAsFactors = FALSE)
Run100.mw$Gender <- as.factor(Run100.mw$Gender)
Run100.mw$Gender <- factor(Run100.mw$Gender, levels=c(1,2), labels=c("Male", "Female"))
str(Run100.mw)
#> 'data.frame': 20 obs. of 3 variables:
#> $ YEAR : num 2018 2019 2018 2019 2018 ...
#> $ Gender: Factor w/ 2 levels "Male","Female": NA NA NA NA NA NA NA NA NA NA ...
#> $ MARK : num 5.64 5.38 5.4 6.61 5.28 ...
library(ggplot2)
ggplot(Run100.mw, aes(x= as.factor(YEAR), y = MARK, fill=Gender)) + geom_boxplot()
#> Error: Must request at least one colour from a hue palette.
Created on 2019-06-25 by the reprex package (v0.2.1)