Sage is simply giving you what Singular computes. Indeed, repeating the calculation in Singular gives the same answer. Note that the Singular documentation D.6.15.10 milnor states that milnor returns -1 if it is not an ICIS in generic form (and otherwise it returns the Milnor number).
Unfortunately I cannot judge if something is wrong, because I'm unfamiliar with these localized rings (defined using ds). (Maybe you can explain the calculation.)