This code doesn’t plot the negative y-value, though the y-axis is extended to provide for it:
library(ggplot2)
df <- data.frame(x = 1:2, y = c(-1, 3))
# I made the second value 3 to show there isn’t some issue with stat = “identity”
ggplot(df, aes(x, y)) + geom_col()

Add a dummy row with a y-value of zero and the negative value does print:
df <- data.frame(x = c(1, 1, 2) , y = c(-1, 0, 3))
ggplot(df, aes(x, y)) + geom_col()

The answer to this question seems to imply this behavior is not universal: Negative values geom_col() in R go below 0
Why, please? Operator sanity check currently has non-zero exit status.