For discussion, let us consider the following dataset:
data = Dataset @ Table[
<|"Gender" -> RandomInteger[1], "Status" -> RandomInteger[1], "Data" -> RandomReal[]|>
, 4
]

A query will not update a dataset in place. Rather, it generates a new dataset containing the result. So, using the query from the question (without the trailing semicolon which suppresses the output) we see:
data[ReplaceAll[{1 -> "Male", 0 -> "Female"}], "Gender"]

This shows the correctly altered Gender column. But only that column. This is because the "Gender"
operator projects out the column with that name:
data[All, "Gender"]

Note that the original dataset is left untouched.
If we wish to generate a new dataset with transformed Gender and Status columns, we must apply query operators to only those columns. We can do this by name:
data[
All
, { "Gender" -> Replace[{1 -> "Male", 0 -> "Female"}]
, "Status" -> Replace[{1 -> "Alive", 0 -> "Dead"}]
}
]

... or by column index (1 = Gender, 2 = Status):
data[
All
, { 1 -> Replace[{1 -> "Male", 0 -> "Female"}]
, 2 -> Replace[{1 -> "Alive", 0 -> "Dead"}]
}
]

In both cases, a new complete dataset is returned with the original remaining untouched.