For reference please see the script running for updating the category with specific groups and granting read permission:-
$groupI = (Get-TridionGroup -GroupName "Group I").Id
$groupIRead = @{}
$groupIRead.Add($groupI, "Read")
Update-TridionCategory -WebdavUrl "webdav/C010 Dummy Schemas/Dummy" -Permissions $groupIRead -Verbose
$groupII = (Get-TridionGroup -GroupName "Group II").Id
$groupIIRead = @{}
$groupIIRead.Add($groupII, "Read")
Update-TridionCategory -WebdavUrl "webdav/C010 Dummy Schemas/Dummy" -Permissions $groupIIRead -Verbose
After running the above script category is updating with only GroupII whichever group is executed at the last only with that group category is getting updated.