How to execute stored procedure with output parameter in Oracle PL/SQL?
There are several mistakes.
1. When specifying parameters of procedure, you don't need to specify size. E.g. it should be CREATE OR REPLACE PROCEDURE insert_toys(toy_id OUT NUMBER,toy_name VARCHAR ), not  .... VARCHAR(30))
2. You created sequence CREATE SEQUENCE toy_seq, but trying to use sequence with different name toy_id := seq_toy.NEXTVAL;  (toy_seq vs seq_toy)
3. Parameter name is the same as field name (Toy_Name). Even though it's not a compilation error, qualifying variables is always much better compared to relying  on resolution rules :

INSERT INTO Toy (Toy_No,Toy_Name)
VALUES (insert_toys.toy_id,insert_toys.toy_name);


The procedure takes 2 parameters, and should be called like that. 

set serveroutput on;  
declare new_id NUMBER;
BEGIN
  insert_toys(new_id,'name2');
  dbms_output.put_line(new_id);  --print value of new id
END;